package com.chmingx.boot.controller;

import com.chmingx.boot.bean.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;

@Controller
public class ResponseTestController {
    @ResponseBody
    @GetMapping("/test/person")
    public Person getPerson() {
        Person person = new Person();
        person.setName("foobar");
        person.setAge(20);
        person.setBirth(new Date());
        return person;
    }

    /**
     * 自定义协议数据MessageConverter
     *
     * 1. 浏览器法请求返回xml, [application/xml] jacksonXmlConverter
     * 2. 如果是ajax请求 返回json [application/json] jacksonJsonConverter
     * 3. 如果app发请求，返回自定义协议数据 [application/x-diy] DiyMessageConverter 属性值1;属性值2;属性值3
     *
     * 步骤：
     * 1. 添加自定义的MessageConverter进系统底层
     * 2. 系统底层就会统计出所有MessageConverter能操作哪些类型
     * 3. 客户端内容协商 [x-diy --> DiyMessageConverter --> 处理返回数据]
     *
     * @return
     */
    @ResponseBody // 利用返回值处理器里面的消息转换器进行数据处理
    @GetMapping("/diy/person")
    public Person diyPerson() {
        Person person = new Person();
        person.setName("foobar");
        person.setAge(20);
        person.setBirth(new Date());
        return person;
    }
}
